package org.study.swing.study01.component;

import javax.swing.*;

/**
 * 作用描述
 *
 * @author doveylovey
 * @version v1.0.0
 * @email 1135782208@qq.com
 * @date 2024年11月14日
 */
public class SplitPanelDemo1 {
    public static void main(String[] args) {
        testSplitPanel1();
    }

    public static void testSplitPanel1() {
        JFrame frame = new JFrame();
        frame.setTitle("示例：分割面板");

        // 创建左右分割面板
        JSplitPane hsplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
        // 创建上下分割面板
        JSplitPane vsplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
        // 创建三个标签组件
        JLabel left = new JLabel("左侧");
        JLabel rightTop = new JLabel("右上侧");
        JLabel rightBottom = new JLabel("右下侧");
        // 设置水平分割面板的属性
        // 让分割条显示出箭头
        hsplitPane.setOneTouchExpandable(true);
        // 在调整分割条过程中连续重绘图形
        hsplitPane.setContinuousLayout(true);
        // 设置分割条的宽度
        hsplitPane.setDividerSize(8);
        // 设置分割条左侧的宽度
        hsplitPane.setDividerLocation(100);
        // 设置垂直分割面板的属性
        vsplitPane.setOneTouchExpandable(true);
        vsplitPane.setContinuousLayout(true);
        vsplitPane.setDividerSize(8);
        // 设置分割条上侧的高度
        vsplitPane.setDividerLocation(200);
        // 将标签添加到水平分割面板的分割条左侧
        hsplitPane.setLeftComponent(left);
        // 将垂直分割面板添加到水平分割面板的分割条右侧
        hsplitPane.setRightComponent(vsplitPane);
        // 标签添加到垂直分割面板的分割条上侧
        vsplitPane.setLeftComponent(rightTop);
        // 将标签添加到垂直分割面板的分割条下侧
        vsplitPane.setRightComponent(rightBottom);
        // 用水平分割面板替换窗口的内容窗格
        frame.setContentPane(hsplitPane);

        frame.setSize(600, 400);
        // 将窗口居中显示在屏幕上
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}
